#ifndef IREGISTRO_H
#define IREGISTRO_H

#include <string>
#include "../BTreeUtils/IImprimible.h"

class IRegistro : public IImprimible {
	protected:
		std::string clavePrimaria;

	public:
		IRegistro();
		virtual ~IRegistro();

		// La clave depende del tipo de registro
		std::string getClave() const;
		void setClave(std::string c);

		virtual int getSize() const = 0;

		// Usados para la serializacion de los datos
		virtual int serializar(char* arrBytes) = 0;
		virtual int desSerializar(char* arrBytes) = 0;

		// Un valor maximo imposible de alcanzar para usar como
		// valor en el maximo registro de cada nodo
		static std::string GET_MAXIMO_IMPOSIBLE() {
			return "zzz";	// No creo que exista una palabra que sea mayor 
		}
};

#endif
